home *** CD-ROM | disk | FTP | other *** search
- 10 REM *******************************
- 11 REM * CLASSIC MILLE BORNE *
- 12 REM * WRITTEN BY ROY BATTY *
- 13 REM *******************************
- 20 IFA=0THENA=1:LOAD"MILLE MOD1",8,8
- 30 IFA=1THENA=2:LOAD"MILLE MOD2",8,8
- 40 PRINT"[147]":SYS49152
- 50 PRINT"[147][154]"
- 55 SYS17600,19200,3,0
- 60 V=53248:POKE2040,185:POKE2041,185
- 70 FORI=0TO5:POKE2042+I,189:NEXT
- 80 POKEV,90:POKEV+2,254
- 90 POKEV+1,66:POKEV+3,66
- 100 POKEV+4,56:POKEV+6,104:POKEV+8,152:POKEV+10,216:POKEV+12,8:POKEV+14,56
- 110 FORI=5TO15STEP2:POKEV+I,56:NEXT
- 120 POKEV+16,192:POKEV+28,3:POKEV+29,252
- 130 POKEV+37,0:POKEV+38,6:POKEV+39,14:POKEV+40,8
- 140 Q$="":R$=""
- 150 FORI=0TO5:POKE(V+41)+I,12:NEXT
- 160 DIMHD(2,7):DIMCN(19):DIMCD$(19)
- 170 FORI=1TO19:READD:CN(I)=D:NEXT
- 180 DATA16,6,3,6,3,6,3,6,4,6,4,12,10,10,10,1,1,1,1
- 185 SD=54272
- 190 ZZ=RND(-TI):HD(1,1)=1:HD(2,1)=1:FORI=2TO7
- 192 R1=INT(RND(0)*12):IFR1=0THENR1=1:GOTO200
- 193 IFCN(R1)=0THEN192
- 194 R2=INT(RND(0)*12):IFR2=0THENR2=1:GOTO200
- 195 IFCN(R2)=0THEN194
- 200 HD(1,I)=R1:CN(R1)=CN(R1)-1:HD(2,I)=R2:CN(R2)=CN(R2)-1:NEXT
- 210 CD$(0)=" "
- 220 CD$(1)="[210][207][204][204] "
- 230 CD$(2)="[211][212][207][208] "
- 240 CD$(3)="[193][195][195][201][196][197][206][212] "
- 250 CD$(4)="[210][197][208][193][201][210][211] "
- 260 CD$(5)="[198][204][193][212] [212][201][210][197] "
- 270 CD$(6)="[211][208][193][210][197] [212][201][210][197] "
- 280 CD$(7)="[207][213][212] [207][198] [199][193][211] "
- 290 CD$(8)="[198][201][204][204] '[197][210] [213][208] "
- 300 CD$(9)="[204][201][205][201][212] (50) "
- 310 CD$(10)="[206][207] [204][201][205][201][212] "
- 320 CD$(11)="200 "
- 330 CD$(12)="100 "
- 340 CD$(13)="75 "
- 350 CD$(14)="50 "
- 360 CD$(15)="25 "
- 370 CD$(16)="[210][201][199][200][212] [207][198] [215][193][217]"
- 380 CD$(17)="[196][210][201][214][201][206][199] [193][195][197] "
- 390 CD$(18)="[208][197][210][205]. [212][201][210][197][211] "
- 400 CD$(19)="[197][216][212][210][193] [212][193][206][203] "
- 410 Z1$=LEFT$(Q$,6)+LEFT$(R$,7)
- 415 Z2$=LEFT$(Q$,6)+LEFT$(R$,28)
- 420 POKEV+21,255:A1=0:A2=0:S1=0:S2=0:K1=0:K2=0
- 430 W1=0:W2=0:D1=0:D2=0:P1=0:P2=0:E1=0:E2=0:T1=0:T2=0
- 440 PRINTLEFT$(Q$,17);LEFT$(R$,5);
- 450 FORI=1TO7:PRINTCD$(HD(1,I));
- 460 PRINT"[157][157][157][157][157][157][157][157][157][157][157][157]";
- 470 NEXT
- 480 PRINTZ1$"[152] [217][207][213] "Z2$" [205][197] [146][154]"
- 488 GETA$:IFA$=""THEN488
- 490 IFA$="P"THENGOSUB3000:GOTO530
- 500 IFA$="D"THENGOSUB3000:GOTO1270
- 510 IFA$="Q"THENSYS49801:POKEV+21,0:PRINT"[147]":RUN50
- 520 GOTO480
- 530 FORI=0TO3:POKE56157+I,1:NEXT
- 540 GETA$:IFA$=""THEN540
- 550 N=VAL(A$):IFN<1ORN>7THEN540
- 555 NN=HD(1,N)
- 560 IFNN>1THEN600
- 570 IFA1=0ORA1=2ORA1=4ORA1=6ORA1=8THEN1340
- 580 IFA1=1THENER=3:GOTO2780
- 590 IFA1=3ORA1=5ORA1=7THENER=5:GOTO2780
- 600 IFHD(1,N)>2THEN650
- 610 IFA2=0ORA2=4ORA2=6ORA2=8THENER=2:GOTO2780
- 620 IFA2=2ORA2=3ORA2=5ORA2=7THENER=6:GOTO2780
- 630 IFW2=1THENER=4:GOTO2780
- 640 GOTO1370
- 650 IFNN>3THEN700
- 660 IFA2=0THENER=2:GOTO2780
- 670 IFA2=5ORA2=7THENER=6:GOTO2780
- 680 IFD2=1THENER=4:GOTO2780
- 690 GOTO1400
- 700 IFNN>4THEN730
- 710 IFA1<>3THENER=3:GOTO2780
- 720 GOTO1430
- 730 IFNN>5THEN790
- 740 IFA2=0THENER=2:GOTO2780
- 750 IFA2=3ORA2=7THENER=6:GOTO2780
- 760 IFP2THENER=4:GOTO2780
- 770 IFA2=2ORA2=4ORA2=6ORA2=8THENER=2:GOTO2780
- 780 GOTO 1460
- 790 IFNN>6THEN820
- 800 IFA1<>5THENER=3:GOTO2780
- 810 GOTO 1490
- 820 IFNN>7THEN870
- 830 IFA2<>1THENER=2:GOTO2780
- 840 IFA2=2ORA2=3ORA2=5ORA2=7THENER=6:GOTO2780
- 850 IFE2THENER=4:GOTO2780
- 860 GOTO 1520
- 870 IFNN>8THEN900
- 880 IFA1<>7THENER=3:GOTO2780
- 890 GOTO 1550
- 900 IFNN>9THEN940
- 910 IFA2=9THENER=6:GOTO2780
- 920 IFW2THENER=4:GOTO2780
- 930 GOTO 1580
- 940 IFNN>10THEN970
- 950 IFS1=0THENER=3:GOTO2780
- 960 GOTO 1610
- 970 IFNN>11THEN1010
- 980 IFA1<>1THENER=1:GOTO2780
- 990 IFS1THENER=8:GOTO2780
- 1000 GOTO 1650
- 1010 IFNN>12THEN1050
- 1020 IFA1<>1THENER=1:GOTO2780
- 1030 IFS1THENER=8:GOTO2780
- 1040 GOTO 1650
- 1050 IFNN>13THEN1090
- 1060 IFA1<>1THENER=1:GOTO2780
- 1070 IFS1THENER=8:GOTO2780
- 1080 GOTO 1650
- 1090 IFNN>14THEN1120
- 1100 IFA1<>1THENER=1:GOTO2780
- 1110 GOTO 1650
- 1120 IFNN>15THEN1150
- 1130 IFA1<>1THENER=1:GOTO2780
- 1140 GOTO 1650
- 1150 IFNN>16THEN1180
- 1160 IFA1=2ORS1THENK1=K1+1
- 1170 GOTO1660
- 1180 IFNN>17THEN1210
- 1190 IFA1=3THENK1=K1+1
- 1200 GOTO1680
- 1210 IFNN>18THEN1240
- 1220 IFA1=5THENK1=K1+1
- 1230 GOTO1700
- 1240 IFA1=7THENK1=K1+1
- 1250 GOTO1720
- 1260 REM HMN DSCD
- 1270 FORI=0TO6:POKE56200+I,1:NEXT
- 1280 GETA$:IFA$=""THEN1280
- 1290 N=VAL(A$):IFN<1ORN>7THEN1280
- 1300 PRINTLEFT$(Q$,16+N)""CD$(0)
- 1310 PRINTLEFT$(Q$,19)LEFT$(R$,24)CD$(HD(1,N))
- 1320 FORI=0TO6:POKE56200+I,3:NEXT:GOTO2690
- 1330 GOSUB3060:GOSUB3010:GOTO1350
- 1340 GOSUB1640
- 1350 GOSUB3010:PRINTCD$(1)
- 1360 A1=1:GOSUB3020:GOTO2690
- 1370 GOSUB1640
- 1380 GOSUB3015:PRINTCD$(2)
- 1390 A2=2:GOSUB3050:POKE2041,185:GOTO2690
- 1400 GOSUB1640
- 1410 GOSUB3015:PRINTCD$(3)
- 1420 A2=3:GOSUB3050:GOSUB3002:POKE2041,188:GOTO2690
- 1430 GOSUB1640
- 1440 GOSUB3010:PRINTCD$(4)
- 1450 POKE2040,185:A1=4:IFW1THEN1330
- 1455 GOTO2690
- 1460 GOSUB1640
- 1470 GOSUB3015:PRINTCD$(5)
- 1480 A2=5:GOSUB3050:GOSUB3004:POKE2041,187:GOTO2690
- 1490 GOSUB1640
- 1500 GOSUB3010:PRINTCD$(6)
- 1510 POKE2040,185:A1=6:IFW1THEN1330
- 1515 GOTO2690
- 1520 GOSUB1640
- 1530 GOSUB3015:PRINTCD$(7)
- 1540 A2=7:GOSUB3050:POKE2041,185:GOSUB3006:GOTO2690
- 1550 GOSUB1640
- 1560 GOSUB3010:PRINTCD$(8)
- 1570 A1=8:IFW1THEN1330
- 1575 GOTO2690
- 1580 GOSUB1640
- 1590 GOSUB3015:PRINT"[145]"CD$(9)
- 1600 S2=1:GOTO2690
- 1610 GOSUB1640
- 1620 PRINTLEFT$(Q$,9)LEFT$(R$,7)CD$(10)
- 1630 S1=0:GOTO2690
- 1640 PRINTLEFT$(Q$,16+N)""CD$(0):RETURN
- 1650 MI=VAL(CD$(HD(1,N)))
- 1651 IFT2+M1>1000THENER=7:GOTO2780
- 1653 T1=T1+MI:GOSUB1640:GOSUB3010:PRINT"[145][145]"T1
- 1654 IFT1=1000THEN4000
- 1655 GOTO2690
- 1660 GOSUB1640
- 1670 PRINTLEFT$(Q$,12)""CD$(16):W1=1
- 1672 IFS1THENGOSUB3010:PRINT"[145]"CD$(10):S1=0
- 1675 IFA1=3ORA1=5ORA1=7THEN2690
- 1677 GOTO1330
- 1680 GOSUB1640
- 1690 PRINTLEFT$(Q$,13)""CD$(17):D1=1
- 1692 IFA1=3THEN1440
- 1696 GOTO2690
- 1700 GOSUB1640
- 1710 PRINTLEFT$(Q$,14)""CD$(18):P1=1
- 1712 IFA1=5THEN1500
- 1716 GOTO2690
- 1720 GOSUB1640
- 1730 PRINTLEFT$(Q$,15)""CD$(19):E1=1
- 1731 IFA1=7THEN1560
- 1735 GOTO2690
- 1740 PRINTZ1$"[152] [217][207][213] [146]"Z2$" [205][197] [154]"
- 1745 GOSUB3060:GOSUB3000
- 1760 ONA2GOTO2070,1780,1840,1780,1920,1780,2000
- 1780 Z=1:GOSUB2670:IFPPTHEN1810
- 1800 GOTO2070
- 1810 GOSUB3060:GOSUB3015:PRINTCD$(1)
- 1820 A2=1:GOSUB2730:HD(2,PP)=NC
- 1830 GOSUB3030:GOTO480
- 1840 Z=4:GOSUB2670:IFPPTHEN1870
- 1860 GOTO2070
- 1870 GOSUB3015:PRINTCD$(4)
- 1880 POKE2041,185:A2=4:GOSUB2730:HD(2,PP)=NC
- 1885 IFW2THEN1810
- 1890 GOTO480
- 1920 Z=6:GOSUB2670:IFPPTHEN1950
- 1940 GOTO2070
- 1950 GOSUB3015:PRINTCD$(6)
- 1960 POKE2041,185:A2=6:GOSUB2730:HD(2,PP)=NC
- 1965 IFW2THEN1810
- 1970 GOTO480
- 1990 REM
- 2000 Z=8:GOSUB2670:IFPPTHEN2030
- 2020 GOTO2070
- 2030 GOSUB3015:PRINTCD$(8)
- 2040 A2=8:GOSUB2730:HD(2,PP)=NC
- 2045 IFW2THEN1810
- 2050 GOTO480
- 2070 IFS2<>1THEN2140
- 2080 Z=10:GOSUB2670:IFPPTHEN2110
- 2100 GOTO2140
- 2110 GOSUB3015:PRINT"[145]"CD$(10)
- 2120 S2=0:GOSUB2730:HD(2,PP)=NC
- 2130 GOTO480
- 2140 IFS1=1THEN2210
- 2150 Z=9:GOSUB2670:IFPPTHEN2180
- 2170 GOTO2210
- 2180 IFW1THEN2210
- 2185 PRINTLEFT$(Q$,9)LEFT$(R$,7);CD$(9)
- 2190 S1=1:GOSUB2730:HD(2,PP)=NC
- 2200 GOTO480
- 2210 IFA2<>1THEN2470
- 2230 FORZ=11TO15:GOSUB2670
- 2240 IFPP=0THEN2290
- 2250 MI=VAL(CD$(HD(2,PP)))
- 2260 IFT2+MI>1000THEN2290
- 2270 IFS2ANDMI>50THEN2290
- 2280 T2=T2+MI:GOTO2462
- 2290 NEXT:GOTO2470
- 2462 GOSUB3015:PRINT"[145][145]"T2:IFT2=1000THEN4000
- 2465 GOSUB2730:HD(2,PP)=NC:GOTO480
- 2470 Z=16:GOSUB2670:IFPPTHEN2500
- 2490 GOTO2510
- 2500 PRINTLEFT$(Q$,12)LEFT$(R$,24)CD$(16):W2=1:IFA2=2ORS2THENK2=K2+1
- 2501 IFS2THENGOSUB3015:PRINT"[145]"CD$(10):S2=0
- 2502 IFA2=3ORA2=5ORA2=7THEN2625
- 2503 GOSUB3015:PRINTCD$(1):A2=1:GOSUB3030
- 2505 GOTO2625
- 2510 Z=17:GOSUB2670:IFPPTHEN2540
- 2530 GOTO2550
- 2540 PRINTLEFT$(Q$,13)LEFT$(R$,24)CD$(17):D2=1:IFA2=3THENK2=K2+1
- 2542 IFA2=3THEN1870
- 2545 GOTO2625
- 2550 Z=18:GOSUB2670:IFPPTHEN2580
- 2570 GOTO2590
- 2580 PRINTLEFT$(Q$,14)LEFT$(R$,24)CD$(18):P2=1:IFA2=5THENK2=K2+1
- 2582 IFA2=5THEN1950
- 2585 GOTO2625
- 2590 Z=19:GOSUB2670:IFPPTHEN2620
- 2610 GOTO2628
- 2620 PRINTLEFT$(Q$,15)LEFT$(R$,24)CD$(19):E2=1:IFA2=7THENK2=K2+1
- 2622 IFA2=7THEN2030
- 2625 GOSUB2730:HD(2,PP)=NC:GOTO480
- 2628 IFA1<>1THEN2680
- 2630 IFW1THEN2638
- 2631 Z=2:GOSUB2670:IFPPTHEN2636
- 2634 GOTO2638
- 2636 GOSUB3010:PRINTCD$(2):A1=2:GOSUB3040:POKE2040,185:GOTO2625
- 2638 IFD1THEN2646
- 2639 Z=3:GOSUB2670:IFPPTHEN2644
- 2642 GOTO2646
- 2644 GOSUB3010:PRINTCD$(3):A1=3:GOSUB3040:GOSUB3002:POKE2040,188:GOTO2625
- 2646 IFP1THEN2654
- 2647 Z=5:GOSUB2670:IFPPTHEN2652
- 2650 GOTO2654
- 2652 GOSUB3010:PRINTCD$(5):A1=5:GOSUB3040:GOSUB3004:POKE2040,187:GOTO2625
- 2654 IFE1THEN2680
- 2655 Z=7:GOSUB2670:IFPPTHEN2660
- 2658 GOTO2680
- 2660 GOSUB3010:PRINTCD$(7):A1=7:GOSUB3040:GOSUB3006:POKE2040,185:GOTO2625
- 2670 PP=0:FORI=1TO7:IFHD(2,I)=ZTHENPP=I
- 2675 NEXT:RETURN
- 2680 GOSUB3000:FORI=0TO6:POKE56200+I,1:NEXT:GOSUB3060
- 2681 QQ=0:FORI=1TO7:CC=HD(2,I):IFCCTHENQQ=I
- 2682 NEXT:IFQQTHEN2684
- 2683 GOTO4000
- 2684 PP=0:FORI=1TO7:CC=HD(2,I)
- 2685 IFCC=4ORCC=6ORCC=8ORCC=10ORCC=15ORCC=14THENPP=I
- 2686 NEXT:IFPPTHEN2688
- 2687 PP=QQ
- 2688 PRINTLEFT$(Q$,19)LEFT$(R$,24)CD$(HD(2,PP)):GOSUB2730:HD(2,PP)=NC
- 2689 FORI=0TO6:POKE56200+I,3:NEXT:GOTO480
- 2690 FORI=0TO3:POKE56157+I,3:NEXT:GOSUB2730
- 2700 HD(1,N)=NC
- 2710 PRINTLEFT$(Q$,16+N)""CD$(NC)
- 2720 GOTO1740
- 2730 CL=0:FORI=1TO19:IFCN(I)THENCL=1
- 2740 NEXT:IFCLTHEN2760
- 2750 NC=0:RETURN
- 2760 ZZ=RND(-TI)
- 2765 NC=INT(RND(0)*21):IFNC=0ORNC>19THENNC=1
- 2767 IFCN(NC)=0THEN2765
- 2770 CN(NC)=CN(NC)-1:RETURN
- 2780 ONERGOSUB2830,2840,2850,2860,2870,2880,2885,2887
- 2790 PRINTLEFT$(Q$,24)"[154]"ER$
- 2800 FORF=0TO2999:NEXT
- 2810 PRINTLEFT$(Q$,24)" [146][154]"
- 2820 FORI=0TO3:POKE56157+I,3:NEXT:GOTO480
- 2830 ER$="[217][207][213] [196][207][206][212] [200][193][214][197] [193] [210][207][204][204] [195][193][210][196]...":RETURN
- 2840 ER$="[201] [196][207][206][212] [200][193][214][197] [193] [210][207][204][204] [195][193][210][196]...":RETURN
- 2850 ER$="[217][207][213] [196][207][206][212] [206][197][197][196] [212][207] [196][207] [212][200][193][212]...":RETURN
- 2860 ER$="[211][207][210][210][217],[160][201] [200][193][214][197] [212][200][197] [211][193][198][197][212][217]...":RETURN
- 2870 ER$="[211][207][210][210][217], [217][207][213] [200][193][214][197] [193] [200][193][218][193][210][196]...":RETURN
- 2880 ER$="[201] [193][204][210][197][193][196][217] [200][193][214][197] [193] [200][193][218][193][210][196]...":RETURN
- 2885 ER$="[212][200][193][212]'[211] [207][214][197][210] 1000 [205][201][204][197][211]...":RETURN
- 2887 ER$="[217][207][213] [200][193][214][197] [193][160][211][208][197][197][196] [204][201][205][201][212]...":RETURN
- 2890 FORI=0TO6:POKE56200+I,3:NEXT:STOP
- 3000 GOSUB3008:POKESD+4,17:FORF=0TO99:NEXT:POKESD+4,16:RETURN
- 3002 GOSUB3009:POKESD+4,129:FORF=0TO99:NEXT:POKESD+4,128:RETURN
- 3004 GOSUB3009:POKESD+4,129:POKESD+4,128:RETURN
- 3006 GOSUB3009:POKESD+4,17:FORI=150TO20STEP-2:POKESD+1,I
- 3007 FORF=0TO9:NEXT:NEXT:POKESD+4,16:RETURN
- 3008 POKESD+5,10:POKESD+6,74:POKESD,200:POKESD+1,50:RETURN
- 3009 POKESD+5,15:POKESD+6,138:POKESD,200:POKESD+1,150:RETURN
- 3010 PRINTLEFT$(Q$,10)"";:RETURN
- 3015 PRINTLEFT$(Q$,10)LEFT$(R$,27);:RETURN
- 3020 IFA2=1THENSYS49840:RETURN
- 3025 SYS49814:RETURN
- 3030 IFA1=1THENSYS49840:RETURN
- 3035 SYS49827:RETURN
- 3040 IFA2=1THENSYS49827:RETURN
- 3045 SYS49801:RETURN
- 3050 IFA1=1THENSYS49814:RETURN
- 3055 SYS49801:RETURN
- 3060 FORF=0TO999:NEXT:RETURN
- 4000 FORI=0TO19:GOSUB3000:NEXT:G1=0:G2=0
- 4001 R2$=LEFT$(R$,25):D$=LEFT$(Q$,8)
- 4005 SYS49801:POKEV+21,0:PRINT"[147]"
- 4010 SYS17600,19200,6,0
- 4020 PRINTD$R2$T2
- 4025 PRINTD$R$T1
- 4030 IFT2=1000THENPRINT"[157][157][157][157][157][157][157][157][157][157][157][157][157][157]400 0":G2=1400:G1=T1
- 4035 IFT1=1000THENPRINT"[157][157][157][157][157][157][157][157][157][157][157][157][157][157]0 400":G1=1400:G2=T2
- 4040 C2=K2*300:PRINTD$""R2$C2
- 4045 C1=K1*300:PRINTD$""R$C1
- 4047 G1=G1+C1:G2=G2+C2
- 4050 X1=0:IFW2THENX1=100
- 4051 IFD2THENX1=X1+100
- 4052 IFP2THENX1=X1+100
- 4053 IFE2THENX1=X1+100
- 4055 PRINTD$""R2$X1
- 4060 X2=0:IFW1THENX2=100
- 4061 IFD1THENX2=X2+100
- 4062 IFP1THENX2=X2+100
- 4063 IFE1THENX2=X2+100
- 4065 PRINTD$""R$X2
- 4067 G1=G1+X2:G2=G2+X1
- 4070 IFT1THEN4080
- 4072 PRINTD$""R1$500:G2=G2+500
- 4080 IFT2THEN4090
- 4082 PRINTD$""R$500:G1=G1+500
- 4090 PRINTD$""R2$G2
- 4095 PRINTD$""R$G1
- 4096 POKE198,0
- 4098 GETA$:IFA$=""THEN4098
- 4099 IFA$="Y"THENRUN50
- 5000 PRINT"[147]"
-